/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import modelo.Apoiador;

/**
 *
 * @author Aluno
 */
public class ApoiadorDAO {
    Connection conn;
    
    public ApoiadorDAO() {
       
        try {
            conn = new Conexao().getConexao();
        } catch (SQLException ex) {
            Logger.getLogger(ApoiadorDAO.class.getName()).log(Level.SEVERE, null, ex);
        }
       
            
    }
     public void inserir(Apoiador apo){
      String sql = " INSERT INTO APOIADOR "+ "(nome,id_apoio,cnpj,telefone)"+ "VALUES(?,?,?,?)";
      try
            (PreparedStatement pstmt = this.conn.prepareStatement(sql)){
            pstmt.setString(1,apo.getNome());
            pstmt.setInt(2,apo.getId_apoio());
            pstmt.setString(3,apo.getCnpj());
            pstmt.setString(4,apo.getTelefone());
            pstmt.execute();
            JOptionPane.showMessageDialog(null,"apoiador inserido com sucesso");
      } catch (SQLException ex) {
           System.out.println("SQLException em adicionar"+ "erro detectado"+ "essas grades não te prendem mano"+ ex.getMessage());
        }
      
}
     public void excluir(int id_apoio) {
         String sql = "DELETE FROM apoiador WHERE id_apoio" + id_apoio;
          try
           (Statement stmt = this.conn.prepareStatement(sql)){
           if(stmt.executeUpdate(sql)!=0){
             JOptionPane.showMessageDialog(null,"apoiador excluido com sucesso"+ "essas grades nao te prendem mano");
           }   
              
     }  catch (SQLException ex) {
            Logger.getLogger(ApoiadorDAO.class.getName()).log(Level.SEVERE, null, ex);
        }

}
      public void alterar(Apoiador apo){
           String sql = "UPDATE apoiador SET" + 
                  "nome?,id_apoio?,cnpj?,telefone?" +
                  "WHERE id_apoio=?";
            try 
          (PreparedStatement pstmt = this.conn.prepareStatement(sql)){
           pstmt.setString(1,apo.getNome() );
           pstmt.setInt(2,apo.getId_apoio());
           pstmt.setString(3, apo.getCnpj());
           pstmt.setString(4, apo.getTelefone());
      if(pstmt.executeUpdate() != 0){
          JOptionPane.showMessageDialog(null,"patrocinador alterado com sucesso");
      }
         
         
      } catch (SQLException ex) {
          System.out.println("SQLException em alterar" + "erro detectado"+ "essas grades não te prendem mano"+ ex.getMessage());
        }
      }
     
      public ArrayList<Apoiador> consultar(){
        String sql = "SELECT FROM apoiador WHERE nome"+ "LIKE"+"1 ORDER BY nome";
        ArrayList<Apoiador>apoiador = new ArrayList<>();
        Apoiador apo;
          try     
            (Statement stmt = this.conn.createStatement();
             ResultSet rs = stmt.executeQuery(null);){
            while(rs.next()){
             
              apo = new Apoiador();
              apo.setNome(rs.getString("nome"));
              apo.setCnpj(rs.getString("cnpj"));
              apo.setId_apoio(rs.getInt("id_apoiador"));
              apo.setTelefone(rs.getString("telefone"));
              apoiador.add(apo);
            }
            stmt.close();
            rs.close();
            return apoiador;
        } catch (SQLException ex) {
            System.out.println("SQLException em consultar"+"erro detectado"+"essas grades não te prendem mano"+ ex.getMessage());
        }
          
          
          return null;
      }
      public ArrayList<Apoiador> listar(){
          String sql = "SELECT * FROM apoiador";
          ArrayList<Apoiador>apoiador = new ArrayList<>();
          Apoiador apo;
          try (Statement stmt = this.conn.createStatement();
                ResultSet rs = stmt.executeQuery(null);){
              while(rs.next()){
             
              apo = new Apoiador();
              apo.setNome(rs.getString("nome"));
              apo.setCnpj(rs.getString("cnpj"));
              apo.setId_apoio(rs.getInt("id_apoiador"));
              apo.setTelefone(rs.getString("telefone"));
              apoiador.add(apo);
            }  
           stmt.close();
           rs.close();
           return apoiador;
          } catch (SQLException ex) {
            System.out.println("SQLException em listar"+"erro detectado"+"essas grades não te prendem mano"+ ex.getMessage());
        }
          
          return null;
      }
      
     
     
}
